﻿using App.Interface;
using Domain.Entidades;
using Domain.Interfaces.Servicos;
using System;
using System.Collections.Generic;
using System.Security.Permissions;

namespace App
{
    public class DocumentosAppService : AppServiceBase<documento>, IDocumentosAppService
    {
        private readonly IDocumentosService _documentoService;

        public DocumentosAppService(IDocumentosService documentosService) : base(documentosService)

        {
            _documentoService = documentosService;
        }

        public List<VW_documentos> Listar(DateTime? dt1, DateTime? dt2, string tipo, string origem, VW_usuarios user, string desc, int tip)
        {
            try
            {
                return _documentoService.Listar(dt1, dt2, tipo, origem, user,desc,tip);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<tipos_documentos> busca_tipos(int origem)
        {
            try
            {
                return _documentoService.busca_tipos(origem);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<origem_documentos> busca_origens(int tipo)
        {
            try
            {
                return _documentoService.busca_origens(tipo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public string Gettipos(int tipo)
        {
            try
            {
                return _documentoService.Gettipos(tipo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<VW_setor> busca_setores()
        {
            try
            {
                return _documentoService.busca_setores();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void Inserir(documento documento)
        {
            try
            {
                _documentoService.Inserir(documento);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void Editar(documento documento)
        {
            try
            {
                 _documentoService.Editar(documento);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void deletar(int codigo)
        {
            try
            {
                _documentoService.deletar(codigo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public documento carrega_busca(long codigo)
        {
            try
            {
                return _documentoService.carrega_busca(codigo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public tipos_origem_documentos busca_tipo_origens(int tip_codigo)
        {
            try
            {
                return _documentoService.busca_tipo_origens(tip_codigo);
            }
            catch (Exception ex)
            {

                throw ex;
            }

        }

     
        public void liberar_revogar(documento documento)
        {
            try
            {
                _documentoService.liberar_revogar(documento);
            }
            catch (Exception ex)
            {

                throw ex;
            }


        }

        public  void copiar_perfil(int user_ori, int user_dest)
        {
            try
            {
                _documentoService.copiar_perfil(user_ori,user_dest);
            }
            catch (Exception ex)
            {

                throw ex;
            }

        }


    }
}